Cross-checking disambiguated product line variability models
نویسندگان
چکیده
Many industry sectors face the challenge of how to satisfy the increasing demand for individualized software systems and software-intensive systems. The software product line (PL) engineering paradigm (SPLE, see [5]) has proven to empower organizations to develop a diversity of similar systems at lower cost, in shorter time, and with higher quality compared to single system development [5]. Key to SPLE is to exploit the commonalities of the systems that belong to the PL and to handle the variability (i.e., the differences) between those systems. Commonalities are properties and qualities that are shared by all systems of the PL [1]; e.g., all mobile phones let users make calls. In SPLE, two kinds of variability can be distinguished: Software variability and PL variability. Software variability refers to the “ability of a software system or artefact to be efficiently extended, changed, customized or configured for use in a particular context” [7]. This kind of variability is well known from the development of single systems. As examples, an abstract Java super-class allows different specializations to be used where the superclass is used; an interface allows different implementations to be chosen. PL variability [1, 5, 3] is specific to SPLE and describes the variation between the systems that belong to a PL in terms of properties and qualities, like features that are provided or requirements that are fulfilled. It is important to understand that defining PL variability, i.e., determining what should vary between the systems in a PL and what should not, is an explicit decision of product management (see [3, 5]). As an example, product management might have decided that the mobile phones of their PL should either offer the GSM or the UMTS protocol. A challenging task in SPLE is to map the PL variability to software variability. This means that the reusable artefacts from which the systems of the PL are built (called the core assets, which constitute the PL platform [5]) should be constructed flexibly enough to allow for efficiently and effectively building those systems [2, 6]. The decisions to be made are crucial and mutually influence each other: which systems to offer as part of the PL (i.e., what the scope of the PL should be [6]), and how to design the reusable artefacts to support this scope [3]. A lack of flexibility in the reusable artefacts, or a scope that lacks awareness of the technical realizability, can severely undermine the SPLE process. At best, timeconsuming and expensive changes of the reusable artefacts or the scope will be required. Therefore, it is essential to ensure that PL variability and software variability are consistent from the beginning. But since all changes cannot be anticipated, co-evolution of both variabilities over time should be facilitated too. In this presentation, we will introduce language and tool support for these tasks. To disambiguate the documentation of variability, we propose to record PL variability and software variability in separate models and to interrelate them. We use Feature Diagrams and Orthogonal Variability Models (OVM) respectively. Equiped with formal syntax and semantics, those models are amenable to automatic analysis in isolation. But, most importantly, since the cross-links between them are also formalized, the models can be crosschecked. We devise a set of checks that are straightforward for the stakeholders to interpret, like whether all planned systems of the PL can be realized, or whether the flexibility of the reusable artefacts is useful. A prototypical implementation relying on a SAT solver is reported. This presentation is based on a paper by the same authors that was recently published in the proceeding of the 15th IEEE International Symposium on Requirements Engineering (RE’07) [4].
منابع مشابه
Tool Support for Incremental Consistency Checking on Variability Models
The complexity of variability models makes it hard for product line engineers to maintain their consistency over time. Engineers need support to detect and resolve inconsistencies. In this paper, we describe our initial results towards tool support for incremental consistency checking on variability models. The main aim of our research is to improve the overall performance and scalability of co...
متن کاملVariability Modeling in Model-Driven Software Product Line Engineering
This paper describes an approach for modeling variability in software product lines that are developed, and later evolved, using model-driven software product line development. This paper describes variability management in UML based multiple-view models of the software product line, which consist of developing use case and feature models during requirements modeling, static and dynamic models ...
متن کاملModeling and Model Checking Software Product Lines
Software product line engineering combines the individual developments of systems to the development of a family of systems consisting of common and variable assets. In this paper we introduce the process algebra PL-CCS as a product line extension of CCS and show how to model the overall behavior of an entire family within PL-CCS. PL-CCS models incorporate behavioral variability and allow the d...
متن کاملTool Support for Software Variability Management and Product Derivation in Software Product Lines
Software variability management is a key challenge in developing software product lines and deriving products from the product line. In order to provide effective variability management and product derivation in software product lines, which is capable of being automated, certain fundamental building blocks are required. These include multiple product line views, the feature model as the unifyi...
متن کاملQuality Assurance in the Presence of Variability
Software Product Line Engineering (SPLE) is a reuse-driven development paradigm that has been applied successfully in information system engineering and other domains. Quality assurance of the reusable artifacts of the product line (e.g. requirements, design, and code artifacts) is essential for successful product line engineering. As those artifacts are reused in several products, a defect in ...
متن کامل